home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / wings / w2_src / test_2.c < prev    next >
C/C++ Source or Header  |  1994-11-16  |  2KB  |  88 lines

  1. // 12ドットフォント・テストプログラム
  2. #include <egb.h>
  3. #include <fnt.h>
  4. #include <conio.h>
  5. #include <stdio.h>
  6. #include <string.h>
  7.  
  8. void    En_font( int x, int y, char *s );
  9.  
  10. char    egbwork[EgbWorkSize], buff[ 110592 ];
  11.  
  12. void    main( void )
  13. {
  14.  
  15.     FILE    *fp;
  16.  
  17.     // 12ドットフォントデータを読み込む
  18.     fp = fopen( "d:\\sysinit\\system.fnt", "rb" );
  19.     fread( buff, 1, 110592, fp );
  20.     fclose( fp );
  21.     EGB_init( egbwork, 1536 );
  22.     // 以下12ドットフォントの表示
  23.     En_font( 0, 0, "愛圧悪鮎逢綾庵飴宛葦" );
  24.     En_font( 0, 1, "、。,.・:;?!”" );
  25.     En_font( 0, 2, "012345ABCF" );
  26.     En_font( 0, 3, "あいうえおかきくけし" );
  27.     En_font( 0, 4, "アイウエオカキクケシ" );
  28.     En_font( 0, 5, "◆□■▽▼※〒→↓〓" );
  29.     En_font( 0, 6, "ΑΒΓΔΕΖΗΘΙΚ" );
  30.     En_font( 0, 7, "АБВГДЕЁЖЗИ" );
  31.     while( !_kbhit( ) );
  32.  
  33. }
  34. void    En_font( int x, int y, char *s )
  35. {
  36.  
  37.     int        i = 0, sjis, jis, off;
  38.  
  39.     static    int    off_table[ ] = {
  40.                        128,     128+94,  128+94* 2,  128+94* 3,
  41.                  128+94* 4,  128+94* 5,  128+94* 6,  128+94* 7,
  42.                  128+94* 8,  128+94* 9,  128+94*10,  128+94*11,
  43.                  128+94*12,  128+94*13,  128+94*14,
  44.                 1538+94* 0, 1538+94* 1, 1538+94* 2, 1538+94* 3,
  45.                 1538+94* 4, 1538+94* 5, 1538+94* 6, 1538+94* 7,
  46.                 1538+94* 8, 1538+94* 9, 1538+94*10, 1538+94*11,
  47.                 1538+94*12, 1538+94*13, 1538+94*14, 1538+94*15,
  48.                 1538+94*16, 1538+94*17, 1538+94*18, 1538+94*19,
  49.                 1538+94*20, 1538+94*21, 1538+94*22, 1538+94*23,
  50.                 1538+94*24, 1538+94*25, 1538+94*26, 1538+94*27,
  51.                 1538+94*28, 1538+94*29, 1538+94*30, 1538+94*31 };
  52.  
  53.     static    struct {
  54.                 char    *ptn;
  55.                 short    ds, x1, y1, x2, y2;
  56.             } font_1 = { buff, 0x14, 0, 0, 0, 0 };
  57.     static    struct {
  58.                 short    x, y, n;
  59.                 char    m[ 3 ];
  60.             } font_2 = { 0, 0, 2, 0, 0, 0 };
  61.  
  62.     font_1.y1 = y * 12;
  63.     font_1.y2 = y * 12 + 11;
  64.     font_2.y  = y * 12 + 11;
  65.     while( *s ){
  66.         sjis = *( s + 1 ) + *s * 256;
  67.         jis = FNT_sjisToJis( sjis );
  68.         //  2水ならBIOSを使って表示
  69.         if( jis>=0x5000 ){
  70.             font_2.x = x*12+i*12;
  71.             font_2.m[ 0 ] = *s;
  72.             font_2.m[ 1 ] = *( s+1 );
  73.             EGB_textZoom( egbwork, 1, 12, 12 );
  74.             EGB_sjisString( egbwork, ( char *)&font_2 );
  75.         }
  76.         else{
  77.             off = off_table[ ( jis - 0x2121 )/0x100 ];
  78.             font_1.ptn = buff + ( off+( jis % 0x100 )-0x21 )*24;
  79.             font_1.x1 = x*12+i*12;
  80.             font_1.x2 = x*12+i*12+15;
  81.             EGB_putBlockColor( egbwork, 0, ( char *)&font_1 );
  82.         }
  83.         i++;
  84.         s += 2;
  85.     }
  86.  
  87. }
  88.